Packet switching networks are used to convey digital information among information sources and destinations known as end points. In such systems, an information source end point creates packets, each including a data portion and a routing information portion, and transmits the created packets to an input port of the packet network. The packet network includes a plurality of interconnected nodes which receive the packets in succession and based on the routing information, each node completes a path to another node or a network outport port. Destination end points receive packets from the network output ports.
From time-to-time packets traversing the packet network may become unusable. One situation where a packet becomes unusable occurs when two packets destined for the same output port concurrently enter a node. When a node concurrently receives two packets destined for the same node output port a "packet collision" is known to occur and one of the packets becomes unusable since only one packet can be sent to the same node output port at a time. As a consequence, the node selects one of the packets for transmission to the output port and the nonselected packet is oftentimes dropped. Source and destination end points have heretofore been equipped with the capability of recovering dropped packets but the architecture and node of operation for such recovery usually requires the exchange of additional packets between the end points. Despite the benefits of such arrangements, there is a recognized need in the art for packet networks which recover dropped packets without requiring the exchange of additional packets or the use of end point resources.
The nodes of some packet networks include buffer memory which stores unusable packets in the node where the collision occurred. The node then transmits the stored packet from buffer memory at a later time, when the destination node output port is available. The inclusion of memory for packet holding in each node increases the cost and complexity of the overall network.
One packet network has been devised which solves the packet collision problem without additional memory in the node. In that network, the unusable one of two colliding packets is transmitted to an output of the node not specified by the packet routing information. The unusable packet then continues to traverse the network until a network output port is reached. An arrangement at the output ports of the network detects unusable packets (those sent to incorrect output ports) and recirculates the unusable packets back to input ports of the network which have been specifically provided for the recirculation of unusable packets. The recirculated packets are then merged with and treated in the same manner as normal input packets to the network. This arrangement avoids the use of additional memory in the network nodes, but it increases the number of network input ports required and thus makes the network larger and more complicated than without recirculation.
In view of the foregoing, a need exists in the art for a packet switch network which is capable of retransmitting unusable packets without the additional network complexities caused by buffering packets in the packet switch nodes or recirculation of unusable packets back to the inputs of the packet network.